package com.chenfan.common.utils;

import cn.hutool.core.collection.CollectionUtil;
import com.chenfan.common.extension.model.*;
import com.chenfan.common.vo.UserVO;

import java.util.Date;
import java.util.List;

/**
 * 基础实体类组装工具
 *
 * @author wulg
 * @date 2022-03-21
 **/
public class BaseAssemblerUtil {
    /**
     * 新增通用信息set
     *
     * @param entity 请求参数
     * @param user   请求参数
     */
    public static void insertFill(BaseEntity entity, UserVO user) {
        entity.setCreateBy(user.getUserId());
        entity.setCreateName(user.getRealName());
        entity.setCreateDate(new Date());
        entity.setCompanyId(user.getCompanyId());
        entity.setTenantId(user.getTenantId());
        updateFill(entity, user);
    }

    /**
     * 更新通用信息set
     *
     * @param entity 请求参数
     * @param user   请求参数
     */
    public static void updateFill(BaseSaveEntity entity, UserVO user) {
        entity.setUpdateBy(user.getUserId());
        entity.setUpdateName(user.getRealName());
        entity.setUpdateDate(new Date());
    }

    /**
     * 更新通用信息set
     *
     * @param entityList 请求参数
     * @param user   请求参数
     */
    public static void batchUpdateFill(List<? extends BaseSaveEntity> entityList, UserVO user) {
        if(CollectionUtil.isNotEmpty(entityList)) {
            entityList.forEach(e -> {
                e.setUpdateBy(user.getUserId());
                e.setUpdateName(user.getRealName());
                e.setUpdateDate(new Date());
            });
        }
    }
}
